/*******************************************************************************
 *	                           bsp cpu.c
 *******************************************************************************/
#include "bsp.h"
#include "mytype.h"
#include "str_ext.h"

/*******************************************************************************
 * @brief  REG DEF
 *******************************************************************************/
#define REG_CRC_CTR (0x40023000 + 8)
#define REG_CRC_IDR (0x40023000 + 4)
#define REG_CRC_ODR (0x40023000 + 0)

/*******************************************************************************
 * @brief  检测并配置.
 *******************************************************************************/
uu32 bsp_crc_reset(uu8 *dat, uu16 len)
{
	outpw(REG_CRC_CTR, 1);

	while (inpw(REG_CRC_CTR) & 1)
	{
	}

	outpw(REG_CRC_ODR, UINT32_MAX);

	while (len--)
	{
		outpb(REG_CRC_IDR, *dat++);
	}

	NOP10();

	return inpw(REG_CRC_ODR);
}
